<template>
    <a-spin :spinning="confirmLoading">
        <j-form-container :disabled="formDisabled">
            <a-form-model ref="form" slot="detail" :model="model" :rules="validatorRules">
                <a-row>
                    <a-col :span="24">
                        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="authorizerAppid"
                                           prop="authorizerAppid">
                            <a-input v-model="model.authorizerAppid" placeholder="请输入authorizerAppid"></a-input>
                        </a-form-model-item>
                    </a-col>
                    <a-col :span="24">
                        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="authorizerAccessToken"
                                           prop="authorizerAccessToken">
                            <a-input v-model="model.authorizerAccessToken"
                                     placeholder="请输入authorizerAccessToken"></a-input>
                        </a-form-model-item>
                    </a-col>
                    <a-col :span="24">
                        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="expiresIn"
                                           prop="expiresIn">
                            <a-input-number v-model="model.expiresIn" placeholder="请输入expiresIn"
                                            style="width: 100%"/>
                        </a-form-model-item>
                    </a-col>
                    <a-col :span="24">
                        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="authorizerRefreshToken"
                                           prop="authorizerRefreshToken">
                            <a-input v-model="model.authorizerRefreshToken"
                                     placeholder="请输入authorizerRefreshToken"></a-input>
                        </a-form-model-item>
                    </a-col>
                    <a-col :span="24">
                        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="funcInfo"
                                           prop="funcInfo">
                            <a-input v-model="model.funcInfo" placeholder="请输入funcInfo"></a-input>
                        </a-form-model-item>
                    </a-col>
                </a-row>
            </a-form-model>
        </j-form-container>
    </a-spin>
</template>

<script>

import {httpAction} from '@/api/manage'

export default {
    name: 'AuthorizationInfoForm',
    components: {},
    props: {
        //表单禁用
        disabled: {
            type: Boolean,
            default: false,
            required: false
        }
    },
    data() {
        return {
            model: {},
            labelCol: {
                xs: {span: 24},
                sm: {span: 5},
            },
            wrapperCol: {
                xs: {span: 24},
                sm: {span: 16},
            },
            confirmLoading: false,
            validatorRules: {},
            url: {
                add: "/authorizationinfo/authorizationInfo/add",
                edit: "/authorizationinfo/authorizationInfo/edit",
                queryById: "/authorizationinfo/authorizationInfo/queryById"
            }
        }
    },
    computed: {
        formDisabled() {
            return this.disabled
        },
    },
    created() {
        //备份model原始值
        this.modelDefault = JSON.parse(JSON.stringify(this.model));
    },
    methods: {
        add() {
            this.edit(this.modelDefault);
        },
        edit(record) {
            this.model = Object.assign({}, record);
            this.visible = true;
        },
        submitForm() {
            const that = this;
            // 触发表单验证
            this.$refs.form.validate(valid => {
                if (valid) {
                    that.confirmLoading = true;
                    let httpurl = '';
                    let method = '';
                    if (!this.model.id) {
                        httpurl += this.url.add;
                        method = 'post';
                    } else {
                        httpurl += this.url.edit;
                        method = 'put';
                    }
                    httpAction(httpurl, this.model, method).then((res) => {
                        if (res.success) {
                            that.$message.success(res.message);
                            that.$emit('ok');
                        } else {
                            that.$message.warning(res.message);
                        }
                    }).finally(() => {
                        that.confirmLoading = false;
                    })
                }

            })
        },
    }
}
</script>